<?php
declare (strict_types = 1);
namespace come;
/**
 * 目录操作类
 * Class Directory
 * @package come
 */
class Directory
{
    /**
     * 从指定目录获取文件
     * @param string $dir 目录
     * @param int $type 返回类型，0-数字索引：文件名值，1-数字索引：全路径文件名值，2-文件名索引：全路径文件名值，3-去扩展文件名索引：全路径文件名值
     * @param int $order 排序，0-按字母升序，1-按字母降序，SCANDIR_SORT_NONE-则返回未排列的结果
     * @return array 返回文件数组
     */
    static function getFiles($dir,$type=0,$order=0){

        if(!is_dir($dir)){
            return [];
        }

        $file_arr = [];
        $scandir = scandir($dir,$order);
        foreach ($scandir as $file){
            if(is_file($dir.DS.$file)){
                switch ($type){
                    case 3:
                        $file_arr[substr($file,0,strripos($file,'.'))] = $dir.DS.$file;
                        break;
                    case 2:
                        $file_arr[$file] = $dir.DS.$file;
                        break;
                    case 1:
                        $file_arr[] = $dir.DS.$file;
                        break;
                    default:
                        $file_arr[] = $file;
                }
            }
        }

        return $file_arr;
    }
}